Patch by GM: apparently '__value' (two underscores) is a special name in Visual Studio, so rename the private method in <regex> with that name. GM's patch used '___value' (three underscores), but I changed that to '__regex_traits_value' because I've been burned in the past by identifiers that appear identical but are not. git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@193087 91177308-0d34-0410-b5e6-96231b3b80d8 
diff --git a/include/regex b/include/regex index cc06e0b..ffe39cf 100644 --- a/include/regex +++ b/include/regex 
@@ -970,7 +970,7 @@  bool isctype(char_type __c, char_class_type __m) const;  _LIBCPP_INLINE_VISIBILITY  int value(char_type __ch, int __radix) const - {return __value(__ch, __radix);} + {return __regex_traits_value(__ch, __radix);}  locale_type imbue(locale_type __l);  _LIBCPP_INLINE_VISIBILITY  locale_type getloc()const {return __loc_;} @@ -1001,11 +1001,11 @@  __lookup_classname(_ForwardIterator __f, _ForwardIterator __l,  bool __icase, wchar_t) const;   - static int __value(unsigned char __ch, int __radix); + static int __regex_traits_value(unsigned char __ch, int __radix);  _LIBCPP_INLINE_VISIBILITY - int __value(char __ch, int __radix) const - {return __value(static_cast<unsigned char>(__ch), __radix);} - int __value(wchar_t __ch, int __radix) const; + int __regex_traits_value(char __ch, int __radix) const + {return __regex_traits_value(static_cast<unsigned char>(__ch), __radix);} + int __regex_traits_value(wchar_t __ch, int __radix) const;  };    template <class _CharT> @@ -1207,7 +1207,7 @@    template <class _CharT>  int -regex_traits<_CharT>::__value(unsigned char __ch, int __radix) +regex_traits<_CharT>::__regex_traits_value(unsigned char __ch, int __radix)  {  if ((__ch & 0xF8u) == 0x30) // '0' <= __ch && __ch <= '7'  return __ch - '0'; @@ -1228,9 +1228,9 @@  template <class _CharT>  inline _LIBCPP_INLINE_VISIBILITY  int -regex_traits<_CharT>::__value(wchar_t __ch, int __radix) const +regex_traits<_CharT>::__regex_traits_value(wchar_t __ch, int __radix) const  { - return __value(static_cast<unsigned char>(__ct_->narrow(__ch, char_type())), __radix); + return __regex_traits_value(static_cast<unsigned char>(__ct_->narrow(__ch, char_type())), __radix);  }    template <class _CharT> class __node;